package org.wdcode.back.action;

import java.util.Map;

import org.wdcode.back.helper.BackHelper;
import org.wdcode.back.helper.CompanyHelper;
import org.wdcode.back.helper.DepartmentHelper;
import org.wdcode.back.helper.GroupHelper;
import org.wdcode.back.helper.LogsHelper;
import org.wdcode.back.helper.MenuHelper;
import org.wdcode.back.helper.OperateHelper;
import org.wdcode.back.helper.PropertyHelper;
import org.wdcode.back.helper.SortHelper;
import org.wdcode.back.helper.RoleHelper;
import org.wdcode.back.helper.RoleOperateHelper;
import org.wdcode.back.helper.UserHelper;
import org.wdcode.back.po.User;
import org.wdcode.base.interfaces.service.Service;
import org.wdcode.base.interfaces.action.impl.BaseServiceAction;

/**
 * 后台系统有助手类的Action
 * @author WD
 * @since JDK6
 * @version 1.0 2009-11-29
 */
public abstract class BaseBackHelperAction<S extends Service<E>, E> extends BaseServiceAction<S, E> {
	// 序列化 ID
	private static final long	serialVersionUID	= -508536935381672461L;

	/**
	 * 获得属性助手
	 * @return 属性助手
	 */
	public final PropertyHelper getPropertyHelper() {
		return PropertyHelper.getHelper();
	}

	/**
	 * 获得分类助手
	 * @return 属性分类助手
	 */
	public final SortHelper getSortHelper() {
		return SortHelper.getHelper();
	}

	/**
	 * 获得分组助手
	 * @return 分组助手
	 */
	public final GroupHelper getGroupHelper() {
		return GroupHelper.getHelper();
	}

	/**
	 * 获得角色助手
	 * @return 角色助手
	 */
	public final RoleHelper getRoleHelper() {
		return RoleHelper.getHelper();
	}

	/**
	 * 获得角色与操作助手
	 * @return 角色与操作助手
	 */
	public final RoleOperateHelper getRoleOperateHelper() {
		return RoleOperateHelper.getHelper();
	}

	/**
	 * 获得用户助手
	 * @return 用户助手
	 */
	public final UserHelper getUserHelper() {
		return UserHelper.getHelper();
	}

	/**
	 * 获得公司助手
	 * @return 公司助手
	 */
	public final CompanyHelper getCompanyHelper() {
		return CompanyHelper.getHelper();
	}

	/**
	 * 获得部门助手
	 * @return 部门助手
	 */
	public final DepartmentHelper getDepartmentHelper() {
		return DepartmentHelper.getHelper();
	}

	/**
	 * 获得日志助手
	 * @return 菜单助手
	 */
	public final LogsHelper getLogsHelper() {
		return LogsHelper.getHelper();
	}

	/**
	 * 获得菜单助手
	 * @return 菜单助手
	 */
	public final MenuHelper getMenuHelper() {
		return MenuHelper.getHelper();
	}

	/**
	 * 获得操作助手
	 * @return 操作助手
	 */
	public final OperateHelper getOperateHelper() {
		return OperateHelper.getHelper();
	}

	/**
	 * 判断是否有权限
	 * @param url 提交路径
	 * @return 是否有权限
	 */
	public final boolean isRights(String url) {
		return getOperateHelper().isRights(url);
	}

	/**
	 * 获得性别Map
	 * @return Map
	 */
	public final Map<Short, String> getSex() {
		return BackHelper.getSex();
	}

	/**
	 * 获得状态Map
	 * @return Map
	 */
	public final Map<Short, String> getState() {
		return BackHelper.getState();
	}

	/**
	 * 获得显示Map
	 * @return Map
	 */
	public final Map<Short, String> getDisplay() {
		return BackHelper.getDisplay();
	}

	/**
	 * 获得登录用户实体
	 * @return 登录用户实体
	 */
	public final User getUser() {
		return getUserHelper().getUser();
	}
}
